Information processing apparatus and method

ABSTRACT

An information processing apparatus and method for ensuring security when a virtual keyboard is used while an image displayed on a display is disclosed to the outside are provided. According to an embodiment of the present invention, it is determined whether or not a virtual keyboard is displayed on a display (S 100 ). If a virtual keyboard is displayed, it is determined whether or not a target character input window onto which characters are input by using the virtual keyboard is a password input window (S 101 ). If this window is the password input window, VRAM distribution is temporarily stopped (S 102 ). With this operation, the distribution of the image stored in the VRAM (i.e., the image displayed on the display) is stopped while a virtual input device is displayed on the display and the target character input window is the password input window.

FIELD OF THE INVENTION

The present invention relates to an information processing apparatus andmethod and, more particularly, to security measures to be taken when theimage displayed on a display is output to an external device.

BACKGROUND OF THE INVENTION

Recently, it is possible to display the desktop frame on a givencomputer on another computer through a network by using software such asVNC (Virtual Network Computing: AT&T laboratories in Cambridge),Microsoft's Remote Assistance, or IBM's Desktop on Call. Many of thesesoftware applications are designed to display a desktop frame on anothercomputer while maintaining security by requesting a password at the timeof connection and performing authentication (see, for example, JapanesePatent Laid-Open No. 2003-66826).

In addition, a character input technique called a virtual keyboard,screen keyboard, or software keyboard has recently been realized. Forexample, a PDA or the like often does not have a keyboard as hardwarebecause of its physical limitation, and hence a virtual keyboard havingcharacter keys arranged on it is displayed on an LCD with a touch panel.Characters are input by operating this virtual keyboard. If a virtualkeyboard is displayed on the display of a general personal computerhaving a keyboard as hardware, desired character keys displayed on thedisplay can be selected with a mouse. This makes it possible to inputcharacters by only mouse operation.

In general, a selected key is, for example, highlighted on such avirtual keyboard to allow an operator to easily check whether or not acorrect key is selected.

If, however, a virtual keyboard is used while the desktop frame isdisclosed to the outside, the highlighted display of a selected key isalso seen on an external device. If an ordinary text is seen, no problemarises. If, however, the purpose of input is to enter a password,security cannot be guaranteed.

SUMMARY OF THE INVENTION

It is an object of the present invention to provide an informationprocessing apparatus and method which can ensure security when a virtualkeyboard is used in a state wherein the image displayed on a display isdisclosed to the outside.

In an aspect of the present invention, an information processingapparatus includes character input means for displaying a virtual inputdevice on a display and inputting a character corresponding to operationon the virtual input device onto a target character input window, andoutput means for outputting an image displayed on the display to anexternal device, wherein the output means stops outputting an imagedisplayed on the display while the virtual input device is displayed onthe display and the target character input window is a password inputwindow.

Other features and advantages of the present invention will be apparentfrom the following description taken in conjunction with theaccompanying drawings, in which like reference characters designate thesame or similar parts throughout the figures thereof.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of the specification, illustrate embodiments of the invention and,together with the description, serve to explain the principles of theinvention.

FIG. 1 is a block diagram showing an example of the arrangement of aninformation processing system including an information processingapparatus according to the present invention;

FIG. 2 is a flowchart showing control processing for VRAM distributionin the first embodiment;

FIG. 3 is a flowchart showing control processing for VRAM distributionin the second embodiment;

FIG. 4 is a flowchart showing control processing for VRAM distributionin the third embodiment;

FIG. 5A is a view showing an example of an image including a passwordinput window and virtual keyboard;

FIG. 5B is a view showing an example of a virtual keyboard whosespecific virtual key is highlighted;

FIG. 6 is a view showing an example of a virtual keyboard in a statewherein no virtual key is highlighted;

FIG. 7 is a block diagram showing the arrangement of an informationprocessing apparatus according to the fourth embodiment;

FIG. 8 is a flowchart showing control processing for image output to anexternal display device in the fourth embodiment;

FIG. 9 is a flowchart showing control processing for image output to anexternal display device in the fifth embodiment;

FIG. 10 is a flowchart showing control processing for image output to anexternal display device in the sixth embodiment; and

FIG. 11 is a flowchart showing control processing for VRAM distributionin the seventh embodiment.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Preferred embodiments of the present invention will be described indetail in accordance with the accompanying drawings. The presentinvention is not limited by the disclosure of the embodiments and allcombinations of the features described in the embodiments are not alwaysindispensable to solving means of the present invention.

First Embodiment

FIG. 1 is a block diagram showing an example of the arrangement of aninformation processing system including an information processingapparatus of the present invention. Referring to FIG. 1, referencenumeral 100 denotes a server (on the side where the contents of a VRAMare sent out) serving as an information processing apparatus accordingto the present invention; and 300, a client (on the side where thecontents of the VRAM of the server 100 are received). The server 100 isconnected to the client 300 through a network 200.

The arrangement of the server 100 will be described first.

A main memory 101 comprises, for example, a semiconductor memory. Acontrol unit 102 includes a CPU 1021 and a program memory 1022 whichstores a program. The CPU 1021 performs overall control of therespective constituent elements in accordance with the control sequencebased on the program stored in the program memory 1022.

Reference numeral 103 denotes an input unit which may operate on theassumption of input from an input device such as a keyboard or mouse,but operates, in particular in this embodiment, on the assumption oftouch input from a virtual keyboard as a virtual input device appearingon the liquid crystal display with a touch panel which is integratedwith an output unit.

Reference numeral 104 denotes an image compression unit which capturesthe contents of the VRAM and compresses an image to be distributed to anetwork by a frame transmission unit 108. If the image is notcompressed, the image compression unit 104 is not used.

Reference numeral 105 denotes a frame display unit which forms contentsto be displayed on a display 107; and 106, a VRAM (Video RAM) whichmainly comprises a semiconductor memory and in which the contents formedby the frame display unit 105 are written. The contents are output tothe display 107. By extracting the contents of the VRAM 106, a frame canbe captured. The display 107 comprises, for example, a liquid crystaldisplay.

The frame transmission unit 108 serving as an output means extracts theimage of the captured frame or the image compressed by the imagecompression unit 104 directly or through an image data recording unit110, and outputs the image to a network interface 111 so as to transmitit to the client 300 through the network 200.

Reference numeral 109 denotes a command reception unit which receives acapture command transmitted from a client through the network 200, andtransfers it to the control unit 102.

The image data recording unit 110 stores the image of the captured frameextracted from the VRAM 106, and mainly comprises a magnetic recordingdevice such as a semiconductor memory or hard disk. The image datarecording unit 110 may store the image compressed by the imagecompression unit 104. The captured image may also be distributed to thenetwork 200 by the frame transmission unit 108 without being recorded onthe image data recording unit 110.

The network interface 111 serves to connect to the network 200.

The arrangement of the client 300 will be described next.

A main memory 301 comprises, for example, a semiconductor memory. Acontrol unit 302 includes a CPU 3021 and a program memory 3022 storing aprogram. The CPU 3021 performs overall control of the respectiveconstituent elements in accordance with a control sequence based on theprogram stored in the program memory 3022.

Reference numeral 303 denotes an input unit comprising an input devicesuch as a keyboard or mouse.

Reference numeral 304 denotes an image decompression unit whichdecompresses an image received through a frame reception unit 308 whenthe image is compressed; 305, a frame display unit which forms contentsto be displayed on a display 307; and 306, a VRAM (Video RAM) whichmainly comprises a semiconductor memory and in which the contents formedby the frame display unit 305 are written. The contents are output tothe display 307. The display 307 comprises, for example, a CRT or liquidcrystal display.

The frame reception unit 308 receives the image of the captured frametransmitted from the server through a network interface 311.

Reference numeral 309 denotes a command transmission unit whichtransmits/outputs a capture command to the server through the networkinterface 311.

Reference numeral 310 denotes an image data recording unit which storesthe image of the frame received by the frame reception unit 308 or theimage decompressed by the image decompression unit 304. The image datarecording unit 310 mainly comprises a magnetic recording device such asa semiconductor memory or hard disk. The image of the received frame maybe output to the frame display unit 305 without going through the imagedata recording unit 310 and displayed on the display 307 through theVRAM 306.

FIG. 2 is a flowchart showing control processing for VRAM distributionin this embodiment. In this specification, “VRAM distribution” means theoperation of capturing the contents of the VRAM and outputting them toan external device (e.g., the client 300) so as to transmit the imagedisplayed on the display to the external device. In this embodiment,more specifically, VRAM distribution means the processing of making thecommand reception unit 109 receive a capture command from a client,capturing the contents of the VRAM 106 in accordance with an instructionfrom the control unit 102, and making the frame transmission unit 108transmit the contents to the client after recording them on the imagedata recording unit 110 and making the image compression unit 104compress them as needed. A program corresponding to this flowchart isstored in, for example, the program memory 1022 and executed by the CPU1021.

First of all, in step S100, it is determined whether or not a virtualkeyboard is displayed on the display 107. If the virtual keyboard isdisplayed, the flow advances to step S101 to determine whether or not atarget character input window (input target) onto which characters areto be input by using the virtual keyboard is a password input window(password area). If this window is the password input window, the flowadvances to step S102 to temporarily stop VRAM distribution. This stopsthe distribution of the image stored in the VRAM (i.e., the imagedisplayed on the display) while the virtual keyboard is displayed on thedisplay and the target character input window is the password inputwindow.

If it is determined in step S100 that the virtual keyboard is notdisplayed on the display, or it is determined in step S101 that thetarget character input window is not the password input window, the flowadvances to step S103 to determine whether or not VRAM distribution iscurrently performed. If VRAM distribution is currently performed, theflow returns to step S100 to repeat the processing. If VRAM distributionis not currently performed, the flow advances to step S104 to start(resume) VRAM distribution.

For the sake of security, the characters input onto the password inputwindow are generally displayed upon being replaced by specificcharacters (e.g., “*”) irrelevant to the input characters. Assume that avirtual keyboard is displayed during VRAM distribution and a password isinput by using the virtual keyboard. In this case, even if thecharacters input onto the password input window are displayed upon beingreplaced by special characters, the selected virtual keys on the virtualkeyboard are highlighted for a predetermined period of time (that is,the selected virtual keys are visually identified by, for example,displaying the selected virtual keys to appear dented or changing thecolor of the selected virtual keys.) Consequently, the password is knownon the client side to which the image is distributed. According tocontrol processing for VRAM distribution in this embodiment, since VRAMdistribution is interrupted while a virtual keyboard is displayed on thedisplay and a target character input window is the password inputwindow, there is no chance that the password will be known on the clientside.

In the first embodiment described above, a virtual keyboard is used as avirtual input device. However, a device other than this, e.g., an inputdevice using a handwriting recognition technique, may be used. In thiscase, a set of lines before characters handwritten with a pen or thelike are recognized are distributed without any change, the human canquickly recognize the set of lines as characters. It is very useful forsecurity to stop VRAM distribution by the above control processing whilecharacters are input onto the password input window by the handwritingrecognition technique.

Second Embodiment

Control processing for VRAM distribution in the first embodiment may bereplaced by the processing shown in the flowchart of FIG. 3.

In step S200 in FIG. 3, the contents of a VRAM 106 are captured (framecapturing) and imaged. It is determined in step S201 whether or not avirtual keyboard is displayed on a display 107. If a virtual keyboard isdisplayed, the flow advances to step S202 to determine whether or not atarget character input window (input target) onto which characters areinput by using the virtual keyboard is a password input window (passwordarea). If this window is the password input window, the flow advances tostep S203 to insert a predetermined image prepared in advance in akeytop image of the virtual keyboard of the frame-captured image. Instep S204, a VRAM image in which the predetermined image is inserted isdistributed to a network. The flow then returns to step S200 to repeatthe processing. If it is determined in step S201 that no virtualkeyboard is displayed on the display or it is determined in step S202that the target character input window is not the password input window,the flow advances to step S204 without performing the processing in stepS203.

FIG. 5A shows an example of an image displayed on the display. In thiscase, reference numeral 51 denotes a password input window; and 52, avirtual keyboard. FIG. 5B shows how a virtual key “C” is highlightedwhen the virtual key “C” is selected. If an image like that shown inFIG. 5B is captured and distributed without any change, it is known onthe distribution destination that “C” is input. When an image portion ofthe keytop of the virtual keyboard like that shown in FIG. 6 is insertedso as to be properly superimposed on the image shown in FIG. 5B by theabove method, the image shown in FIG. 5A can be obtained, and it cannotbe known which key is pressed. Therefore, this image can be safelydistributed to the network.

Third Embodiment

Control processing for VRAM distribution in the first embodimentdescribed above may be replaced by the processing shown in the flowchartof FIG. 4.

First of all, in step S300, it is determined whether or not a virtualkeyboard is displayed on a display 107. If a virtual keyboard isdisplayed, the flow advances to step S301 to determine whether or not atarget character input window (input target) on which characters areinput by using the virtual keyboard is a password input window (passwordarea). If this window is the password input window, the flow advances tostep S302 to determine whether or not a character is currently inputonto the password input window as the target character input window(which period corresponds, for example, an interval between the instantat which a button of the virtual keyboard is pressed and the instant atwhich the button is released). If a character is currently input on thepassword input window, the flow advances to step S303 to temporarilystop VRAM distribution. With this operation, the distribution of theimage stored in the VRAM (i.e., the image displayed on the display) isstopped while characters are input onto the password input windowthrough the virtual keyboard in a case wherein the virtual keyboard isdisplay on the display and the target character input window is thepassword input window.

If it is determined in step S300 that no virtual keyboard is displayedon the display or it is determined in step S301 that the targetcharacter input window is not the password input window or it isdetermined in step S302 that no character is currently input onto thepassword input window, the flow advances to step S304 to determinewhether or not VRAM distribution is currently performed. If VRAMdistribution is currently performed, the flow returns to step S300 torepeat the processing. If no VRAM distribution is currently performed,the flow advances to step S305 to start (resume) VRAM distribution.

According to the above control processing, even if a target characterinput window onto which characters are input by using a virtual keyboardis the password input window, no input button is highlighted on thevirtual keyboard unless a character is being input to the password inputwindow. In this case, the VRAM image can be safely sent to the network.

Consider Java (trademark), for example. When an area “TextField” inwhich characters can be input is to be used as a password input window,a character (to be referred to as an echo character hereinafter) (“*” ingeneral) for masking arguments is designated by a method calledsetEchoChar. With this setting, the user's input is not directlydisplayed in TextField but is displayed in echo character. In addition,making inquiry as to whether an echo character is set in TestField by amethod called echoCharIsSet makes it possible to acquire informationindicating whether or not the target window is the password input window(the process in step S301 shown in FIG. 4).

Fourth Embodiment

FIG. 7 is a block diagram showing an example of the arrangement of aninformation processing apparatus according to this embodiment.

In an information processing apparatus 400, a main memory 401 comprises,for example, a semiconductor memory. A control unit 402 includes a CPU4021 and a program memory 4022 in which a program is stored. The CPU4021 performs overall control of respective constituent elements inaccordance with a control sequence based on the program stored in theprogram memory 4022.

Reference numeral 403 denotes an input unit which may operate on theassumption of input from an input device such as a keyboard or mouse,but operates, in particular in this embodiment, on the assumption oftouch input from a virtual keyboard as a virtual input device appearingon the liquid crystal display with a touch panel which is integratedwith an output unit.

Reference numeral 404 denotes a frame display unit which forms contentsto be displayed on a display 406; and 405, a VRAM (Video RAM) whichmainly comprises a semiconductor memory and in which the contents formedby the frame display unit 404 are written. The contents are output tothe display 406. The display 406 comprises, for example, a liquidcrystal display.

An outline of the arrangement of the information processing apparatus400 in this embodiment has been described above. As shown in FIG. 7, anexternal display device 500 is connected to the information processingapparatus 400. The external display device 500 comprises, for example, aliquid crystal projector or CRT. When the external display device 500 isconnected to the VRAM 405, the same window as that displayed on thedisplay 406 is output (mirroring) to the external display device 500.However, different contents may be displayed on the external displaydevice 500. In this case, a VRAM dedicated to the external displaydevice may be provided independently of the VRAM 405.

As a typical example of the above arrangement, for example, theinformation processing apparatus 400 is assumed to be a device such as aPDA which has no external keyboard and is designed to make a useroperate a liquid crystal touch panel with a finger or pen and has anexternal output. If this device is connected to a projector device asthe external display device 500 through the external output, when apresentation is made, the operator can operate the PDA while seeing awindow on the PDA (i.e., the display 406), and people who see thepresentation can see an enlarged window displayed on the projector(i.e., the external display device 500). In this case, the same windowas that of the PDA is displayed on the projector by mirroring.

FIG. 8 is a flowchart showing control processing for image outputoperation to the external display device 500 in this embodiment.

First of all, in step S400, it is determined whether or not a virtualkeyboard is displayed on the display 406. If a virtual keyboard isdisplayed, the flow advances to step S401 to determine whether or notthe target character input window (input target) onto which charactersare input by using the virtual keyboard is a password input window(password area). If this window is the password input window, the flowadvances to step S402 to temporarily stop output (external output) tothe external display device 500. With this operation, the output of theimage stored in the VRAM 405 (i.e., the image displayed on the display406) to the external display device 500 is stopped while the virtualkeyboard is displayed on the display 406 and the target character inputwindow is the password input window.

If it is determined in step S400 that no virtual keyboard is displayedon the display 406, or it is determined in step S401 that the targetcharacter input window is not the password input window, the flowadvances to step S403 to determine whether external output is currentlyperformed. If external output is currently performed, the flow returnsto step S400 to repeat the processing. If external output is notcurrently performed, the flow advances to step S404 to start (resume)the external output.

For the sake of security, the characters input on the password inputwindow are generally displayed upon being replaced by specificcharacters (e.g., “*”) irrelevant to the input characters. Assume that avirtual keyboard is displayed on a window on the external display device500 during external output operation and a password is input by usingthe virtual keyboard. In this case, even if the characters input on thepassword input window are displayed upon being replaced by specialcharacters, the selected virtual keys on the virtual keyboard arehighlighted for a predetermined period of time (in general, the selectedkeys look dented). Consequently, the password is known by the imagedisplayed on the external display device 500. According to controlprocessing for external output operation in this embodiment, sinceexternal output is interrupted while a virtual keyboard is displayed onthe display 406 and a target character input window is the passwordinput window, there is no chance that the password will be known fromthe image displayed on the external display device 500.

Fifth Embodiment

Control processing for external output operation in the fourthembodiment may be replaced by the processing shown in the flowchart ofFIG. 9.

First of all, in step S500, it is determined whether or not a virtualkeyboard is displayed on a display 406. If a virtual keyboard isdisplayed, the flow advances to step S501 to determine whether or not atarget character input window (input target) onto which characters areinput by using the virtual keyboard is a password input window (passwordarea). If this window is the password input window, the flow advances tostep S502 to determine whether or not a character is currently inputonto the password input window as the target character input window(which period corresponds to, for example, an interval between theinstant at which a button of the virtual keyboard is pressed and theinstant at which the button is released). If a character is currentlyinput onto the password input window, the flow advances to step S503 totemporarily stop image output (external output) to an external displaydevice 500. With this operation, output of the image stored in a VRAM405 (i.e., the image displayed on the display 406) to the externaldisplay device 500 is stopped while characters are input onto thepassword input window through the virtual keyboard in a case wherein thevirtual keyboard is display on the display 406 and the target characterinput window is the password input window.

If it is determined in step S500 that no virtual keyboard is displayedon the display 406, or it is determined in step S501 that the targetcharacter input window is not the password input window, or it isdetermined in step S502 that no character is currently input onto thepassword input window, the flow advances to step S504 to determinewhether or not external output operation is currently performed. Ifexternal output operation is currently performed, the flow returns tostep S500 to repeat the processing. If external output operation is notcurrently performed, the flow advances to step S505 to start (resume)the external output operation.

According to the above control processing, even if a target characterinput window onto which characters are input by using a virtual keyboardis the password input window, no input button of the virtual keyboard ishighlighted unless a character is currently input onto the passwordinput window. Therefore, an image can be safely output to the externaldisplay device 500.

Sixth Embodiment

Control processing for external output operation in the fourthembodiment described above may be replaced by the processing shown inthe flowchart of FIG. 10.

First of all, in step S600, it is determined whether or not a virtualkeyboard is displayed on a display 406. If a virtual keyboard isdisplayed, the flow advances to step S601 to determine whether or notthe target character window (input target) onto which characters areinput by using the virtual keyboard is a password input window (passwordarea). If this window is the password input window, the flow advances tostep S602 to determine whether or not a character is currently inputonto the password input window as the target character input window(which period corresponds to, for example, an interval between theinstant at which a button of the virtual keyboard is pressed and theinstant at which the button is released). If a character is currentlyinput onto the password input window, the flow advances to step S603 toinhibit the input portion of the virtual keyboard from changing fromthat of the virtual keyboard before the input operation. That is, theflow advances to step S606 to perform external output operation withoutperforming the processing of highlighting the selected virtual key onthe virtual keyboard for a predetermined period of time (in general,making the selected key look dented). With this operation, in a casewherein a virtual keyboard is displayed on the display and the targetcharacter input window is the password input window, while a characteris being input onto the password input window through the virtualkeyboard, the display form of the portion of the virtual keyboarddisplayed on an external display device 500 does not change even if apassword is input on an information processing apparatus 400 by using avirtual keyboard.

If it is determined in step S601 that the target character input windowis not the password input window, the flow advances to step S604 todetermine whether or not a character is currently input onto thepassword input window as the target character input window. If acharacter is currently input onto the password input window, the flowadvances to step S605 to change the input portion of the virtualkeyboard from the state of the virtual keyboard before the inputoperation. That is, the processing of highlighting the selected virtualkey on the virtual keyboard for a predetermined period of time isexecuted, and the flow advances to step S606 to perform external outputoperation.

If it is determined in step S600 that no virtual keyboard is displayedon the display 406, or it is determined in step S602 that no characteris currently input onto the password input window, the flow advances tostep S606 to continue external output operation as in a normal case.

With the above control processing, when a character is input onto thepassword input window by using the virtual keyboard, since the displayform of the virtual keyboard does not change from that before the inputoperation, no person can see, on the display window of the externaldisplay device 500, how input operation is performed. This makes itpossible to safely output a frame to the outside.

Seventh Embodiment

The control processing for external output operation in the sixthembodiment described above can also be applied to the control processingfor VRAM distribution in the first embodiment. FIG. 11 is a flowchartshowing control processing for VRAM distribution in this embodiment.This flowchart is almost the same as that shown in FIG. 10, and the sameprocessing steps are assigned the same step numbers. The processing inthis embodiment differs from that in the first embodiment in that stepS606 of outputting an image to an external display device 500 isreplaced by step S606′ of capturing a frame and distributing it to anetwork.

With the above control processing, while a character is input onto thepassword input window by using the virtual keyboard, the display form ofthe virtual keyboard does not change from that before the inputoperation, and hence it is impossible to see on the client side howinput operation is performed. This makes it possible to safelydistribute the contents of a frame to a network.

Other Embodiments

Note that the present invention can be applied to an apparatuscomprising a single device or to system constituted by a plurality ofdevices.

Furthermore, the invention can be implemented by supplying a softwareprogram, which implements the functions of the foregoing embodiments,directly or indirectly to a system or apparatus, reading the suppliedprogram code with a computer of the system or apparatus, and thenexecuting the program code. In this case, so long as the system orapparatus has the functions of the program, the mode of implementationneed not rely upon a program.

Accordingly, since the functions of the present invention areimplemented by computer, the program code installed in the computer alsoimplements the present invention. In other words, the claims of thepresent invention also cover a computer program for the purpose ofimplementing the functions of the present invention.

In this case, so long as the system or apparatus has the functions ofthe program, the program may be executed in any form, such as an objectcode, a program executed by an interpreter, or scrip data supplied to anoperating system.

Example of storage media that can be used for supplying the program area floppy disk, a hard disk, an optical disk, a magneto-optical disk, aCD-ROM, a CD-R, a CD-RW, a magnetic tape, a non-volatile type memorycard, a ROM, and a DVD (DVD-ROM and a DVD-R).

As for the method of supplying the program, a client computer can beconnected to a website on the Internet using a browser of the clientcomputer, and the computer program of the present invention or anautomatically-installable compressed file of the program can bedownloaded to a recording medium such as a hard disk. Further, theprogram of the present invention can be supplied by dividing the programcode constituting the program into a plurality of files and downloadingthe files from different websites. In other words, a WWW (World WideWeb) server that downloads, to multiple users, the program files thatimplement the functions of the present invention by computer is alsocovered by the claims of the present invention.

It is also possible to encrypt and store the program of the presentinvention on a storage medium such as a CD-ROM, distribute the storagemedium to users, allow users who meet certain requirements to downloaddecryption key information from a website via the Internet, and allowthese users to decrypt the encrypted program by using the keyinformation, whereby the program is installed in the user computer.

Besides the cases where the aforementioned functions according to theembodiments are implemented by executing the read program by computer,an operating system or the like running on the computer may perform allor a part of the actual processing so that the functions of theforegoing embodiments can be implemented by this processing.

Furthermore, after the program read from the storage medium is writtento a function expansion board inserted into the computer or to a memoryprovided in a function expansion unit connected to the computer, a CPUor the like mounted on the function expansion board or functionexpansion unit performs all or a part of the actual processing so thatthe functions of the foregoing embodiments can be implemented by thisprocessing.

As many apparently widely different embodiments of the present inventioncan be made without departing from the spirit and scope thereof, it isto be understood that the invention is not limited to the specificembodiments thereof except as defined in the appended claims.

CLAIM OF PRIORITY

This application claims priority from Japanese Patent Application No.2004-093164 filed on Mar. 26, 2004, the entire contents of which arehereby incorporated by reference herein.

1. An information processing apparatus comprising: character input meansfor displaying a virtual input device on a display and inputting acharacter corresponding to operation on the virtual input device onto atarget character input window; determination means for determiningwhether or not the virtual input device is displayed on the display andthe target character input window is a password input window; and outputmeans for outputting an image displayed on the display to an externaldevice if said determination means determines that the virtual inputdevice is not displayed on the display or the target character inputwindow is not the password input window, and stopping outputting animage displayed on the display to the external device if saiddetermination means determines that the virtual input device isdisplayed on the display and the target character input window is thepassword input window.
 2. An information processing method comprising: acharacter input step of displaying a virtual input device on a displayand inputting a character corresponding to operation on the virtualinput device onto a target character input window; and determinationmeans for determining whether or not the virtual input device isdisplayed on the display and the target character input window is apassword input window; and an output step of outputting an imagedisplayed on the display to an external device if said determinationmeans determines that the virtual input device is not displayed on thedisplay or the target character input window is not the password inputwindow, and stopping outputting an image displayed on the display to theexternal device if said determination means determines that the virtualinput device is displayed on the display and the target character inputwindow is the password input window.
 3. A computer-readable storagemedium storing a program for executing an information processing methoddefined in claim 2.